//
// Created by ZYZ on 2020/6/11.
//

#include <stdio.h>
#include "test_polynomial_linked_list.h"
#include "../../src/linked_list/polynomial_linked_list.h"

polynomial initPoly(int pos) {
    polynomial poly;
    int term_count; //项数
    printf("请输入第 %d 个一元多项式的非零项的个数：", pos);
    scanf("%d", &term_count);
    CreatPolyn(poly, term_count);
    return poly;
}

void test_poly_add(polynomial &poly1, polynomial &poly2) {  //还差打印不出最后的 b 的一串数据
    AddPolyn(poly1, poly2);
    printf("2个一元多项式相加的结果：\n");
    PrintPolyn(poly1);
}

void test_poly_add2(polynomial &poly1, polynomial &poly2) {
    AddPolyn1(poly1, poly2); //first_poly = first_poly + second_poly
    printf("2个一元多项式相加的结果(另一种方法)：\n");
    PrintPolyn(poly1);
}

void test_poly_sub(polynomial &poly1, polynomial &poly2) {
    SubtractPolyn(poly1, poly2);
    printf("2个一元多项式相减的结果：\n");
    PrintPolyn(poly1);
}

void test_poly_multi(polynomial &poly1, polynomial &poly2) {
    MultiplyPolyn(poly1, poly2);
    printf("2个一元多项式相乘的结果：\n");
    PrintPolyn(poly1);
}


void test_polynomial_linked_list() {
    polynomial poly1 = initPoly(1);
    polynomial poly2 = initPoly(2);

//    test_poly_add(poly1, poly2);
//    test_poly_add2(poly1, poly2);

//        系数        指数
//     3.000000        2
//     1.000000        3
//     9.000000        7
//     2.000000        8
//     3.000000        9

//    test_poly_sub(poly1, poly2);

//        系数        指数
//    -1.000000        2
//    -1.000000        3
//    -1.000000        7
//    2.000000         8
//    -3.000000        9

    test_poly_multi(poly1, poly2);

//        系数        指数
//    5.000000         4
//    15.000000        5
//    2.000000         6
//    9.000000         7
//    9.000000         8

    DestroyPolyn(poly1);
}